The present invention relates to an error correction method and an error correction apparatus utilizing the method, and particularly relates to an error correction method that can utilize recursive error correction and an error correction apparatus utilizing the method.
In a storage system such as an optical disc drive, many types of correcting errors may exist, such that a strong error correcting code structure is needed. Some storage systems will use multiplayer error correcting codes (MLECC) to have a strong correcting capability. For example, a CD system has two layers of error correction codes, C1 and C2. C1 is utilized to correct some random errors. Erasure flags will be indicated for uncorrectable bytes in the C1 code. When C2 is utilized for decoding, a byte in the uncorrectable C1 code will become a byte with erasure flag in a C2 code. By this way, the erasure flag can increase error correcting capability of C2.
Similarly, a DVD system has codes PI/PO. PI is utilized to correct some random errors. Erasure flags will be indicated for uncorrectable bytes in the PI code. When PO is utilized for decoding, a byte in the uncorrectable PI code will become a byte with erasure flag in a PO code. By this way, the erasure flag can increase error correcting capability of PO.
However, there may still be uncorrectable bytes in PO code. Erasure flags will be indicated for uncorrectable bytes in PO code. In this case, a PI/PO recursive decoding flow will be taken. An uncorrectable byte in the PO code will become a byte with erasure flag in a PI code. After PI working, erasure flags will be indicated for bytes in PI code that can not be corrected by PI. Then PO is used for decoding, a byte in the uncorrectable PI code will become a byte with erasure flag in a PO code. Such recursive decoding process can be repeated many times and increase the system decoding capability. In a BD (blu-ray disc) system, an ECC cluster is constructed by LDC (Long Distance Code) code and BIS (Burst Indication Subcode) subcode, as shown in FIG. 1. A BIS-subcode is rare to be uncorrectable. The BD system can be regarded as a multi-code system though it does not use MLECC. If a BIS byte is erroneous and corrected, a BIS erasure flag will be indicated for the corrected BIS byte. An LDC erasure flag for an LDC byte will be generated by statistics on BIS erasure flag according to its neighboring BIS bytes. Then an LDC code is decoded according its LDC byte content and its LDC erasure flag. The process of generating LDC erasure flag from BIS subcode increases error correcting capability.
FIG. 2 is a flow chart illustrating the error correction operation of the BD system. The operation includes:
Step 201
Start.
Step 203
Receive BIS erasure.
Step 205
Perform LDC decoding (i.e. LDC code error correction perform error correction to LDC code).
Step 207
Determine if decoding is ok. If yes, go to step 209. If not, go to step 211.
Step 209
End.
Step 211
Decoding fails.
However, it is hard to have recursive decoding process like DVD system in a BD system, because the BD system is not an MLECC system. Accordingly, the error correction probability can not increase via recursive decoding operation.